package com.ruoyi.function.service;

import java.util.List;
import java.util.Map;

import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderV3Result;
import com.ruoyi.function.domain.Orders;
import com.ruoyi.function.domain.PayParam;
import com.ruoyi.function.domain.SysTopUp;
import com.ruoyi.function.domain.bo.OrdersBo;


/**
 * 系统充值订单Service接口
 * 
 * @author ruoyi
 * @date 2025-03-20
 */
public interface ISysTopUpService 
{
    /**
     * 查询系统充值订单
     * 
     * @param topUpId 系统充值订单主键
     * @return 系统充值订单
     */
    public SysTopUp selectSysTopUpByTopUpId(Long topUpId);

    /**
     * 查询系统充值订单列表
     * 
     * @param sysTopUp 系统充值订单
     * @return 系统充值订单集合
     */
    public List<SysTopUp> selectSysTopUpList(SysTopUp sysTopUp);

    /**
     * 新增系统充值订单
     * 
     * @param topUp 系统充值订单
     * @return 结果
     */
    public int insertSysTopUp(SysTopUp topUp);

    /**
     * 修改系统充值订单
     * 
     * @param sysTopUp 系统充值订单
     * @return 结果
     */
    public int updateSysTopUp(SysTopUp sysTopUp);

    /**
     * 批量删除系统充值订单
     * 
     * @param topUpIds 需要删除的系统充值订单主键集合
     * @return 结果
     */
    public int deleteSysTopUpByTopUpIds(Long[] topUpIds);

    /**
     * 删除系统充值订单信息
     * 
     * @param topUpId 系统充值订单主键
     * @return 结果
     */
    public int deleteSysTopUpByTopUpId(Long topUpId);

//    PayParamsVO pay(Orders orders);

    //支付成功后回调
    void processWxOrders(Map result);

    void processWxRefund(Map result);

    Map<String, String> topUp(PayParam payParam);

    Map<String, String> pullUpPayment(OrdersBo ordersBo);

    int orderRefund(Orders order);

    SysTopUp selectSysTopUpByTransactionId(String outTradeNo);
}
